
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Parser
{
    public  void parse_Line(String code_in)
    {
        char[] code_array=code_in.toCharArray();
        String type = "";
        String var="";
        String offest="";
        String offest_split="";
        boolean is_end=false;
        boolean is_offest_start=false;
        System.out.println("待解析代码"+code_in);
        boolean is_type_end=false;
        int type_str_len=-1;
        for(int i=0;i<code_array.length;i++)
        {
            Character code_char=code_array[i];
            String code_str=code_char.toString();
            if(i<5&&is_type_end==false)// &&! code_char.toString().equals(" "))
            {
                if(code_str.equals(" "))
                {
                    is_type_end=true;
                }
                type+=code_str;
                type_str_len+=1;
            }
            if(!code_char.toString().equals(" ")&&i>type_str_len)
            {
                if(!code_char.toString().equals("[")&&is_offest_start==false) //&& is_var_start)
                { 
                    var+=code_char.toString();
                    // System.out.println("var"+var);
                }
                if(code_char.toString().equals("["))
                {
                    //    System.out.println("偏移值开始");
                    is_offest_start=true;
                } 
                if(code_char.toString().equals(";"))
                {
                    //System.out.println("结束");
                    is_offest_start=false;
                    is_end=true;
                }
                // System.out.println("非空格的值"+code_char);
            }
            if(is_offest_start==true)
            {
                offest+=code_char.toString();
                //System.out.println("值"+offest);
                offest_split=offest.replaceAll("\\[|\\]","");
            }
        }
        System.out.println("type长度"+type_str_len);
        String type_result=type.trim();
        System.out.println("分析类型"+type_result);
        System.out.println("变量名"+var);
        String result=offest_split.split("\\*")[1];
        System.out.println("偏移"+result);
        System.out.println("结束?"+is_end);
        if(!type_result.equals("int")&&!type_result.equals("float")&&!type_result.equals("char")&&!type_result.equals("short")&&!type_result.equals("long"))
        {
            System.out.println("类型错误!");
        }
        Character s=var.charAt(0);
        Pattern p= Pattern.compile("-");
        Matcher m= p.matcher(var);
        String char_1=s.toString();
  
        if(char_1.matches("[0-9]")||m.find())
        {
            System.out.println("变量名非法");
        }
        System.out.println(" ");
    }
}
